perm filename NEWIO.FAI[EXP,LCS] blob sn#153750 filedate 1975-07-17 generic text, type T, neo UTF8
00100		TITLE MUSIO
00200		INTERNAL ZBIT,GETTAP,TOTAPE,FINTAP,BACKSP,USETI
00300	
00400		;'CH' IS USED IN GETTAP, TOTAPE
00500		;'CH2' "  "    " MTA1, INMTA1, GETFI2, FASTI2
00600		INTERNAL GETFI2,FASTI2,UNPACK
00700	
00800		CH←12
00900		CH2←11
01000		CH3←13
01010	
01020	; CALL USETI(WDS/128)
01030	
01040	USETI:	0
01045		MOVE 1,@(16)
01050		USETI CH2,(1)
01060		JRA 1,1(16)
01100	
01110	;  CALL UNPACK(WRD,LFT SMPL, MID SMPL, RT SMPL)
01120	UNPACK:	0
01130		MOVE	1,[POINT 12,@(16)]
01140		ILDB	1
01150		MOVEM	@1(16)
01160		ILDB	1
01170		MOVEM	@2(16)
01180		ILDB	1
01190		MOVEM	@3(16)
01195		JRA	16,4(16)
01197	
01200	;CALL TOTAPE(<ARRAY>,<NO.OF WORDS>)  WRITES ON MAGTAPE
01300	
01400	TOTAPE:	0
01500		HRRZ 0,0(16)
01600		SUBI 0,1
01700		MOVEM 0,COM
01800		MOVN 0,@1(16)
01900		HRLM 0,COM
02000		OUTPUT CH,COM
02100		STATZ CH,740000
02200		0
02300		JRA 16,2(16)
02400	
02500	;CALL GETTAP
02600	
02700	GETTAP:	0	;USES  TOTAPE, CH.  READS OR WRITES MTA0.
02800		INIT CH,617
02900		SIXBIT/MTA0/
03000		0
03100		HALT
03200		JRA 16,0(16)
03300	
03400	; CALL FINTAP
03500	
03600	FINTAP:	0
03700		CLOSE CH,0
03800		STATZ CH,740000
03900		0
04000		RELEASE CH,0
04100		JRA 16,0(16)
04200	; CALL BACKSP
04300	
04400	BACKSP:	0
04500		INIT CH,617
04600		SIXBIT/MTA0/
04700		0
04800		HALT
04900		MTAPE CH,7
05000		JRA 16,0(16)
05100	
05200	; CALL ZBIT(<INPUT ARRAY>,<OUTPUT ARRAY>)
05300	;              (256 WDS)     (512 WDS)
05400	
05500	ZBIT:	0
05600		MOVE 2,(16)
05700		MOVE 1,1(16)
05800		HRLI 2,-=256
05900	
06000	LOOP:	HLRE 0,(2)
06100		FSC 0,233	;FLOAT IT
06200		MOVEM 0,(1)	; GETS 512 18-BIT SAMPLES OUT OF 256 WDS.
06300		HRRE 0,(2)
06400		FSC 0,233
06500		MOVEM 0,1(1)
06600		ADDI 1,2
06700		AOBJN 2,LOOP
06800		JRA 16,1(16)
06900	
07000	
07100		BLKS←=1
07200	REGS:	BLOCK 20
07300	
07400	;CALL GETFIL(<FILE>)
07500	
07600	GETFI2:	0
07700		MOVE 0,@0(16)
07800		MOVEM 0,FILNAM
07900		JSA 16,INTFI2
08000		MOVE 0,[SIXBIT/MUS/]
08100		MOVEM 0,DIR+1
08200		JSA 16,LKUP
08300		SKIPA
08400		JRST GETF3
08500		SETZM DIR+1
08600		JSA 16,LKUP
08700		0
08800	GETF3:	JRA 16,1(16)
08900	
09000	LKUP:	0
09100		SETZM DIR+2
09200		SETZM DIR+3
09300		LOOKUP CH2,DIR
09400		JRA 16,0(16)
09500		JRA 16,1(16)
09600	
09700	DIR:	BLOCK 4
09800	
09900	;CALL FASTI2(<ARRAY>,<NO. WORDS>)
10000	
10100	FASTI2:	0
10200		HRRZ 0,0(16)
10300		SUBI 0,1
10400		MOVEM 0,COM
10500		MOVN 0,@1(16)
10600		HRLM 0,COM
10700		INPUT CH2,COM
10800		STATZ CH2,740000
10900		0
11000		JRA 16,2(16)
11100	
11200	INTFI2:	0	;INITS DSK 
11300		MOVEI REGS
11400		BLT REGS+3
11500		INIT CH2,17
11600		SIXBIT/DSK/
11700		0
11800		0
11900	DSKX:	MOVE 0,FILNAM#
12000		MOVEM 0,FN#
12100		MOVE 1,[POINT 7,FN]
12200	INTF3:	MOVE 2,[POINT 6,DIR]
12300		SETZM DIR
12400		MOVEI 3,5
12500	INTF1:	ILDB 0,1
12600		CAIN 0," "
12700		JRST INTF2
12800		SUBI 0,40
12900		IDPB 0,2
13000		SOJG 3,INTF1
13100	INTF2:	HRLZI REGS
13200		BLT 3
13300		JRA 16,0(16)
13400	
13500	COM:	OCT 0,0
13600	;;;COM1:	0
13700	BLKNUM:	0
13800	
14100	
14200	;;;	ENTRY	FILBRK
14300		EXTERN	DEV,FILBRK
14400		INTERN	FNAM,DLK,ASTR
14500	
14600		WD←7
14800	
14900	ASTR:	ASCIZ/
15000	*/
15100	ZERSUB:	0
15200		MOVE	PT2
15300		MOVEM	PT
15400		SETZB	1,WD
15500		JRST	@ZERSUB
15600	
15700	COMSUB:	CAIN	15
15800		JRST	[MOVEI	10,EOJ
15900		JRST	(16)]
16000		CAIN	"["
16100		JRST	[MOVEI	10,GTPROJ
16200		JRST	(16)]
16300		CAIE	"."
16400		JRST	2(16)
16500		MOVEI	10,GTEXT
16600		JRST	(16)
16700	
16800	FSUB:	JSP	16,COMSUB
16900		MOVEM	WD,FNAM
17000		JRST	(10)
17100		CAIL	1,6
17200		JRST	.+3
17300		SUBI	40
17400		IDPB	PT
17500		AOJA	1,(15)
17600	
17700	ACS:	BLOCK	20
17800	
17900	FNAM:DLK:	0
18000	EXT:	0
18100		0
18200	PPN:	0
18300	PT:	POINT	6,WD
18400	PT2:	POINT	6,WD
18500	
18600	FILBRK:	0
18700		MOVEM	17,ACS+17
18800		MOVEI	17,ACS
18900		BLT	17,ACS+16
19000	ST:	MOVSI	'DSK'
19100		MOVEM	DEV
19200		SETZB	FNAM
19300		MOVEM	FNAM+1
19400		MOVEM	FNAM+2
19500		MOVEM	FNAM+3
19600		OUTSTR	ASTR
19700	GTDEV:	JSR	ZERSUB
19800		MOVEI	15,.+1
19900		INCHWL
20000		CAIE	":"
20100		JRST	FSUB
20200		MOVEM	WD,DEV
20300	GTFNAM:	JSR	ZERSUB
20400		MOVEI	15,.+1
20500		INCHWL
20600		JRST	FSUB
20700	GTEXT:	JSR	ZERSUB
20800		INCHWL
20900		JSP	16,COMSUB
21000		MOVEM	WD,EXT
21100		JRST	(10)
21200		CAIL	1,3
21300		JRST	.+3
21400		SUBI	40
21500		IDPB	PT
21600		AOJA	1,GTEXT+1
21700	
21800	GTPROJ:	SETZB	1,2
21900		INCHWL
22000		CAIN	","
22100		JRST	GTPROG
22200		SUBI	60
22300		CAILE	7
22400		JRST	ERR
22500		ASH	2,3
22600		JOV	ERR
22700		HRLZS
22800		ADD	2,
22900		JOV	ERR
23000		JRST	GTPROJ+1
23100	
23200	GTPROG:	INCHWL
23300		CAIE	15
23400		CAIN	"]"
23500		JRST	COMBIN
23600		SUBI	60
23700		CAILE	7
23800		JRST	ERR
23900		ASH	1,3
24000		JOV	ERR
24100		HRLZS
24200		ADD	1,
24300		JOV	ERR
24400		JRST	GTPROG
24500	COMBIN:	HLR	2,1
24600		MOVEM	2,PPN
24700	EOJ:	CLRBFI
24800		MOVSI	17,ACS
24900		BLT	17,16
25000		MOVE	17,ACS+17
25100		JRA	16,(16)
25200	ERR:	CLRBFI
25300		OUTSTR	[ASCIZ/?IMPROPER SYNTAX?
25400	/]
25500		JRST	ST
25600		END